#ifndef _TICKETING_H_
#define _TICKETING_H_

#include "lvgl/lvgl.h"
#include "lvgl/demos/lv_demos.h"
#include "lv_drivers/display/fbdev.h"
#include "lv_drivers/indev/evdev.h"
#include <unistd.h>
#include <pthread.h>
#include <time.h>
#include <sys/time.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h> 
#include <dirent.h>
#include <sys/stat.h>
#include <sys/types.h>

extern lv_obj_t *ticket;//取票窗口
extern lv_obj_t *input_ticket;//输入票号窗口
extern lv_obj_t *ticket_popup;//取票界面弹窗
extern lv_obj_t *take_ticket_btn;//取票按钮
extern lv_obj_t *buy_ticket_btn;//购票按钮
extern lv_obj_t *exit_btn;//退出按钮
extern lv_obj_t *weather_label;//天气label
extern lv_obj_t *time_label;//时间label
extern lv_obj_t *my_ad;//我的广告


/******************取票区*****************/
extern lv_obj_t *exit_input_ticket_btn;//退出输入票号按钮
extern lv_obj_t *confirm_ticket_btn;//确认取票按钮
/******************取票区*****************/


/******************买票区*****************/
extern lv_obj_t *movies_dropdown;//电影列表下拉框
extern char file_content[1024]; // 存储电影名字
extern lv_obj_t *exit_buy_ticket_btn;//退出购票按钮
extern lv_obj_t *confirm_buy_ticket_btn;//确认购票按钮
extern lv_obj_t *selectsession_dropdown;//选择场次下拉列表
extern lv_obj_t *seats_container;//座位容器

extern lv_style_t exit_btn_style;//返回登录按钮样式
extern lv_style_t exit_buy_ticket_btn_style;//退出购票按钮样式
/******************买票区*****************/






/******************取票区*****************/
extern lv_style_t exit_intput_ticket_btn_style;//退出文本输入界面按钮样式
/******************取票区*****************/


//界面函数
void ticket_init(void);
void update_time();
void timer_cb(lv_timer_t *timer);
void init_time_display(lv_obj_t *parent);
void create_time_label(lv_obj_t *parent);
char * read_announcement_from_file(const char * filepath); //从文件中读取公告
extern char date_str[11];  // 用于存储日期的字符串

/******************取票区*****************/
void input_ticket_init(void);
bool read_user_movie(const char *path);
/******************取票区*****************/

//事件函数
void exit_ticket_btn_event_cb(lv_event_t * e);
void take_ticket_btn_event_cb(lv_event_t * e);
void scroll_anim_cb(void * label, int32_t v);
void scroll_anim_end_cb(lv_anim_t * anim) ;


/******************取票区*****************/
void exit_input_ticket_btn_event_cb(lv_event_t * e);
void confirm_ticket_btn_event_cb(lv_event_t * e);
/******************取票区*****************/



/******************买票区*****************/
void dropdown_event_handler(lv_event_t * e);
bool read_movie_file(const char *path);
bool read_movie_session(const char *path);
void seat_selection_init();
void buy_ticket_btn_event_cb(lv_event_t * e);
void exit_buy_ticket_btn_event_cb(lv_event_t * e);
void confirm_buy_ticket_btn_event_cb(lv_event_t * e);
void selectsession_dropdown_event_cb(lv_event_t * e);
void back_to_buy_ticket_event_cb(lv_event_t * e);
void seat_selected_event_cb(lv_event_t * e);
void confirm_seat_selection_event_cb(lv_event_t * e);
int get_selected_seat_count(void);
void confirm_seat_selection_event_cb(lv_event_t * e);
/******************买票区*****************/



#endif 